package com.qiaofang.collectmanage.analysis;

import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Created with IDEA
 * 2、获取元素的值
 * 此类方法值只允许，新增，不允许修改 ，修改需要review
 *
 * @author:ZJ.J
 * @Date:2018/6/1
 * @Time:14:28
 */
public class ReturnElementValue {

    private ReturnElementValue(){}
   

    /**
     * 获取标签包含的内容
     * 如：<span>内容</span>
     *
     * @param element 最新html element
     * @param args    无
     * @return 返回 解析后字符串
     */
    public static String text(Element element, String... args) {
        return element.text();
    }

    /**
     * 获取标签属性的值
     * 如：<a href="www.baidu.com">内容</a>
     *
     * @param element 最新html element
     * @param args    args[0] 方法名称
     *                args[1] 标签属性名 如：href
     * @return 返回 解析后字符串
     */
    public static String attr(Element element, String... args) {
        return element.attr(args[1]);
    }

    /**
     * 将一个elements 子标签属性的值用args[2]分隔拼接字符串
     * @param element
     * @param args
     *  args[1] 标签属性的值
     *      如：<p>
     *              <a href="www.baidu.com1">内容1</a>
     *              <a href="www.baidu.com2">内容2</a>
     *              <a href="www.baidu.com3">内容3</a>
     *          </p>
     *  args[2] 分隔符
     * @return  www.baidu.com1;www.baidu.com2;www.baidu.com3;
     */
    public static String listAttrToStr(Element element, String... args) {
        StringBuilder str = new StringBuilder();
        Elements elements = element.children();
        for (Element e : elements) {
            str.append(e.attr(args[1]) + args[2]);
        }
        return str.toString();
    }
    /**
     * 将一个elements 中子标签内容用args[2]分隔拼接字符串
     * @param element
     * @param args
     *      如：<p>
     *              <a href="www.baidu.com">内容1</a>
     *              <a href="www.baidu.com">内容2</a>
     *              <a href="www.baidu.com">内容3</a>
     *          </p>
     *  args[1] 分隔符
     * @return  内容1;内容2;内容2;
     */
    public static String listTextToStr(Element element, String... args) {
        StringBuilder str = new StringBuilder();
        Elements elements = element.children();
        for (Element e : elements) {
            str.append(e.text() + args[1]);
        }
        return str.toString();
    }
}
